{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import math\n",
    "import numpy as np\n",
    "import scipy.integrate as si"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "#低通滤波：\n",
    "\n",
    "def lpf(x):\n",
    "    global  yyy\n",
    "    yyy =  0.99 *  yyy + x * 0.01\n",
    "    return yyy\n",
    "\n",
    "def hpf(x):\n",
    "    global y_k\n",
    "    global y_k1\n",
    "    global u_k1\n",
    "    global alpha\n",
    "    y_k = alpha * ( x - u_k1 + y_k1)\n",
    "    y_k1 = y_k\n",
    "    u_k1 = x\n",
    "    return y_k"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    " \n",
    "class PID():\n",
    "    def __init__(self, dt, max, min, Kp, Kd, Ki):\n",
    "        self.dt = dt    # 循环时长\n",
    "        self.max = max  # 操作变量最大值\n",
    "        self.min = min  # 操作变量最小值\n",
    "        self.Kp = Kp         # 比例增益\n",
    "        self.Kd = Kd         # 积分增益\n",
    "        self.Ki = Ki         # 微分增益\n",
    "        self.integral = 0    # 直到上一次的误差值\n",
    "        self.pre_error = 0   # 上一次的误差值\n",
    " \n",
    "    def calculate(self, setPoint, pv):\n",
    "                #setPoint 目标值\n",
    "                #pv实际值\n",
    "        # 其中 pv:process value 即过程值，\n",
    "        error = setPoint - pv           # 计算得到偏差\n",
    "        Pout = self.Kp * error          # 比例项\n",
    "        self.integral += error * self.dt\n",
    "        Iout = self.Ki * self.integral  # 积分项\n",
    "        derivative = (error - self.pre_error)/self.dt\n",
    "        Dout = self.Kd * derivative     # 微分项\n",
    " \n",
    "        output = Pout + Iout + Dout     # 新的目标值\n",
    " \n",
    "        if(output > self.max):\n",
    "            output = self.max\n",
    "        elif(output < self.min):\n",
    "            output = self.min\n",
    " \n",
    "        self.pre_error = error         # 保存本次误差，以供下次计算\n",
    "        return output\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhwAAAGTCAYAAABj8MvsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAAxOAAAMTgF/d4wjAABLe0lEQVR4nO19bYxd1Xn1umbsa4yBEL5hGCaEMRE133HqQIOFEA3qj5ImoVVSCERJDVQR7evqFfxo1T8pKVI6VUpfyVBFVhtXKG6h/EnTgtLwETW0pg2hoR+xEYNtYtfEwhgDczzG5/1xvWeOx/fjnLOfvfdznrOWZI1n7jlr1l6z795rztx1TyfP8xwEQRAEQRABsSS1AIIgCIIg7IOBgyAIgiCI4GDgIAiCIAgiOBg4CIIgCIIIDgYOgiAIgiCCg4GDIAiCIIjgYOAgCIIgCCI4xlIL6Idut4szzzwztQyCIAiCICrgjTfeQJZlfR9TGTjOPPNM7Nq1K7UMgiAIgiAqYHx8fOBj/JMKQRAEQRDBwcBBEARBEERwMHAQBEEQBBEcDBwEQRAEQQQHAwdBEARBEMHBwEEQBEEQRHAwcBAEQRAEERwMHARBEARBBAcDB0EQBEEQwcHAQRAEQRBEcDBwEARBEAQRHAwcBEEQBEEEBwMHQRAEQRDBwcCxCO++K8Nz+DBw6JAMl5SmLAPef9+fJ8+B997z5wHodxnkuZymd9/t8fni8OHe+CQg6ffhwzJc2vx+/319fh86pM/v996j36MwOwvMzPjz1AEDxyJcdhnwn//pz/Onfwr83//rz7NvH3DuuTIT7YtfBL71LX+e554DbrjBnwcArrkG+PGP/Xn+3/8Dfud3/HkOHOj5LbHY3HUX8M1v+vM8/zzwS7/kzwMAH/848MIL/jyPPAL89m/787z7bs/vd97x5/rKV4CNG/15/u3fgF/8RX8eALj+euCf/9mfZ9Mm4Ld+y5/n0KGe3/v3+3P9n/8DPPSQP89LLwFXXeXPAwA33gg884w/z1//NXDHHf48778PnHce8POf+3Pddx/wJ3/iz/Mf/wF87GP+PHXAwLEIP/95b5PXwvPWW71NcHZWjyYpHkkuKZ4DB3r/JH4r0TY2SS4pnoMHe34fPKhHk2W/33235/fbb+vRtG+fXb9nZ3tr+Ftv6dGUZUC3689TBwwci5BlMr/dSvIUP/pyaeKR5KLfcbnod1wu+h2Xy7rfDBwKkOecsDF5JLnod1wu+h2Xi37H5bLuNwOHAszN9T5qmxzFj75cmnjyvPc3ZU2aLPstyUW/43JZ93tuDjhyRJcmy34zcCiA1slR/OjLpYnHtUo0abLs95EjvYVdkyatfh8+zA2wDJekJomWGf0ux8PAoQBaJ0fxoy+XJI9v/Uzr2IoffbmkeI4c8W8qMeCV5yl+rIv335erV2obm+OwrMny2Bg4FEDr5Ch+9OWS4slz/w1Q69iKH325NGmyPDbHoUmT5bE5Dk2a3FUpi2NzHAwchqB1chQ/+nJp0mR5bI5DkybLY3McmjRZHpvj0KTJ8tgcBwOHIWidHMWPvlyaNFkem+PQpMny2ByHJk2Wx+Y4NGmyPDbHwcBhCFonR/GjL5cmTZbH5jg0abI8NsehSZPlsTkOTZosj81xMHAYgtbJUfxYF9IVVAlNlv12HJo0WR6b49CkyfLYHIcmTdJjk6jqavWbgUMBtE6O4se6kG4oSHBZ9lu6giqhybLfjkOTJumxSVR16Xc1Lt+qrla/GTgUQOvkKH5MzSPJFcJvLVXdNgQ8iaqulCbpCqqEprY85yR4ih9T80hyafWbgUMBLG+AbXgyaqrqtsFvCS5tPJJcljVJV1AlNFn2W/q2G8uX+/PUAQNHASEmrHu7dF8eLRNfksuyJstjk+TSxiPJZVmT5bFJckkGPBc6fMErHEpgecJaHpsklzYeSS7LmiyPTZJLG48kl2VN0mNj4FAATti4XJY1WR6bJJc2Hkkuy5osj02SSxuP42DgUACpH6qroEpwaZ2wElyWNVkemySXNh5JLsuaLI9NkkuaR6qqy8ChAFKTo1il0jZhLT4ZXQVVkybLfktyaeOR5LKsyZ2vqarbBr8BmaouA4cChJgc2iasxSej9oBnrankKqiaNLnzNVV1LT/nuMal4ZHiYuBQgCwDVqyQmxxSXNI8EhugtrEB+jStWCFX1dU2NkCfphUrjtWnRZMvj7uKoEmTZb9dG0STJmm/GTgUIMuAU0+VW5BPOUWGS0rTqaf2/i9R1ZXUJOW3Nk3Ob22a6HdcTfQ7riaJgJfnujRlGXDyyQv/9+Vi4FCALJMLCUuX9t5cRYJLStMppyz8X5MmqQV55Updmqz7rU0T/Y6raeXKY/Vp0GTZ7+XLgWXLGDjMQHJydLu9f5omrOUFedkyfQFP8jcSbX53OsBJJ+nStGIFsGSJLk2WN0Ctaxz9LseVAgwcBWidHNwAR/No9HvFCuCEE3Rpsuy3Rk1SPEuWyL0WgH6P5gF666UmTQwcxqB1ckhpOvFEYGzMj8tVULUtEBr91qjJ8tg0arI8No2aTjnFv6qbZb1fFCwHPAYOBdA6OTRpchVULshxNLkKqrTfPk0ly35LazrlFP+qrtaxadQk8WdjrWNj4DAGrZNDkyZ3LjfAOJpC+O1b1bXst/vtmBtgHE2ugkq/42pi4FAANzl83z7W8oQNsQECflVd+l2eiwvyaB6AfsfS5Cqo9DuOJnfbDdWB495778Xk5CQ6nQ5efPFFAMDs7Cw+9alPYdWqVbjiiitw0003Yfv27fPn7N27FzfffDOmpqawevVqPPvss0EGIInihPV5+1jLE9adK1lBLfLW5bHuNxfkOJrod1xN0n5LVHUt++32NdWB47Of/Sx+8IMf4MILLzzm6+vXr8f//M//4Mc//jFuueUWfPnLX55/7P7778fatWuxbds2bNq0CZ///Ocx5/uOU4HBBaIcj3QF1f3fh8ey35IVVImmknW/AV1VXfodX5N1v1UHjuuvvx7j4+PHfG358uX4lV/5FXQ6HQDA2rVrMTMzM//4li1bcPfddwMA1qxZg/POOw/PPPOMkOww4AYYj8dxcQOMw+O4JKq61v2WrKBqnAPa/AbkKqj0ezQPoDxwlME3vvEN3HLLLQCAffv2YW5uDuecc87845OTk9ixY4fUtwsCbZfk3KvbtU1YySejRFXX+gIh/WIxbZrod1xN2vyWrKBq9bt4w8OUmkwEjgceeADbt2/H1772tVrnT09PY3x8fP7fwYMHJWRVRpbJvH0sLzc2U5N0BVXT2DRr0tRUaovfWqq6bfHb/T+1pizr/YK3JFFdxPvbfv3rX8fjjz+O7373u1hx9HZ2p59+OsbGxrBnz57542ZmZjAxMdGXY8OGDdi1a9f8v5XuMkNkaJuwDBzxeQBugLF4ihVULVVdy34XK6iON7Umy347Lo1+p4JX4Jiensajjz6Kp556Ch/4wAeOeezWW2/Fxo0bAQBbt27F66+/jnXr1vl8u+DQNmGLG6CWqq7lBaLoN6Cjqtsmv7Vosup3sYLqeFNrsuy3q6Bq9DsVxsocdNddd+E73/kO9uzZg09+8pM4+eST8fTTT+P3fu/3cNFFF+GGG24AAHS7XfzLv/wLAODBBx/E7bffjqmpKSxbtgybN2/G0qVLw41EANomrDvXXfA5dKj3J5/UmqwuEP02wGXL0mtqk991L25qG5tGTQx4cXlcBVXT6wIbETgefvjhvl/Ph1xzPvvss/Hkk0/WU5UI2ias2/BcyMgyBo7QPK6C6j53LZqUmiz7DehqKrXBb01V3Tb4rU1TY/+kYg0aJ6zjcZ9r0mRxgaDfcXmWLOnxaKnqWvcb0KeJfsfVxMChAO5V2xonh7usr0mT1QWi2+1tglqqum3wG9CnyarfJ5zQ+6dJk2W/gd76rUkTA4cCaE6jnY6uqq4Ej6ugatLEDTAND6BPk+Ox1FTS7re1qm6WAUuXLlzF06KJgUMBNAcOp0uTJuuXG7Vp6nZ7L0KruwG6Cir9Ls/jU9V1FVT6XZ7Hfa5Jk1W/U4GB4yi4AVbn8anq0u/qPED9mwrS7+o87vM6cJVq+l2ex31eB8W7oGobG6BTUwowcByF+yFq/XubNk3cAONq8l2Q6Xd1Hvd5XR6AflfhcZ/XQfEuqNrG5nRp05QCDBxHkWW9sNHp6Jwc2jRJLMidTu/FmdrGBujTxA0wrib6HVeTe7tt+h1PUwowcByF9smhTZPEgtztMuBV4XGf1+Vx7RttYwP0aXJtDm6AzdBEv6trSgEGjqPQPjm0afKt6moem0ZNvlVdzWOzqCnL9FZQAXua3Hn8k3h5TSnAwHEU2ieHD1eICqpvVdey3xo1WR6bRk0hx1a3qWTd7xAVVJ+qrna/U4CB4yi0Tw5tlxslNFn1O0QF1VdTKL99qrpSmkJUUH01hfLbp6pr+TkXamzuc02aGDgMQPvkYOAYzdXt+ld16Xd5Lsfn01SS0BSiguqryfIGGKKC6qvJst+LNTFwGECoyeF+202piRtgXE1t8zu1JvodV1OICqqvJst+HznSC9UMHIZgecJmmXwFVUKTZb8dB/0Or4l+x9XUFr8lqrqaA14KMHAchfUFotuVraBKafLlKXJp8lu6giqhybLfjsOy3xJVXfrdPE2h/E4BBo6jsL4gW30yFrm0VHXb4reWqm6WyVdQJTRZnQPuPMkKqoQm634zcBiC1OQoVlCXLl3gTqnJ8pOxyKWlqtsWv7Vosjw2jZqy7PgKauqmknW/gYWAJ1XVTQEGjqMIkUZ9/4ShbeJr1FSsoGrRZNnvYgVVi6bFPBqqupbnwGIeDVVd634Xb7vhvuarKQUYOI4iROCQ4NLEo1FTE/zWUtWV4ClWULVoWswD6GgqSQU8V0HVoqmf39o0WVvjQvidAgwcR9GmDVBLVbctfgN2NsCm+K1NU12eYkNBiybLfhcrqFo0MXAYhOTkcBVUCS7NE1bL2ByHJk30O64m+h1Xk1W/tQc8yapuCjBwHIX05Oh05LikedzXNGny4XFtCU2aLPvtODRpcjzWmkra/dZU1W2D39JcscHAcRTaJwc3wNE8GjVZ3ADdb1maNDmeJUt6DQpNmiQ2QDePtGjS/Jxj4CjPFRsMHEehfXJI8Vir6mr321pVV7vfGjX58rgKqiZNTfC7TlOpTQEvBRg4jkL75JDcAOtyaa+gWtOkvYJKTeV56lZ1tY9No6Zut35VN8sWKqjSmrT5nQIMHEehfXJo0NSmy40aNIWsoNat6lr2O2QFFajXVLLsdyhN7mPdNU7z2KS5YoOB4yi0Tw4NmkIGjrpVXfpdXRM3wP4I2VBwX/PhkdaU2u+QFVT3NR8eaU2p/e7HFRsMHEexeHLUfftYyxM29AbIBeJ4Hne+pCb6PZjHnS+piX73BwNeXE3F226kAgPHUXDCluMJVUF1X/PhkdakwW93vqQm+j2Yx50vqcmnqUS/q2vyqeq2ye8UYOA4CqkFeXb2+MkxOyujqe6EldLUj0dCk/sopUnK77o8UpqyTK6CWtTkNsC6mkLNAYmfm48m9/2LDQUJTT5VXcn5vdhvDeuJO9+HB+g/B7StJ6n9ZuBQBG2/AYZqKPhwhUr/PlVd67+RhBibT1XXut8hKqi+miz7DchXUH01hfQ7ZVOJgUMRij9Un7ePlZochw/3Jqe2BSLUBphaU5sCnkZNlsemUVO3m76qm2VhKqi+mkL5DSw0z1Jocue4X/BSgIHjKLRN2MVp1PKTUYOmUBVUHy7LfvdrKKRuKln2ezGX+5iyqdRGv1PvKd3uQsBLAQaOo9A2YRk44vO4891H96rulJqs+t2voeD4U2my7Ldr3dHvNJo0+p0CDBxHoW3C9tsAU1d1LS8Q/fwufj2VJvodVxP9jqvJqt+LK6ga/U4BBo6j0DZhs+z4Cqr7ekpNVhcILsjxedz5xY+pNbXFbw1V3Tb5raGqy8ChCBon7GIe93VNmiwtEIsrqO7rKTVZ9htY2Pi4AYbncecDflVdbWPTqGmx31o0MXAowOKGAqBvcnADjMujoapr3e9iBVVDVde638BCsNOiybrf2jQxcCjA4goqoG9yaKjqSvEsvkmWBk2LeTRUda0vyIsXP22arPldrKBq0bSYJ/VNBSV5Op2FP4lr0cTAoQBNSaPaNNXlWdxQ0KDJst+LK6gaNDXFbytV3ab4Ddio6joezQEvBRg4wMCRgsedr0lTE/yuU9VlwKvP475eBYsrqNKa6HdcTVb9TgEGDnAD9OGpU9Wl3/V53Ner8hTPl9ZEv4/nKZ4vrYl+H4t+d0HVNjatmmKDgQO9H0SxggronBzaNHFBjquJfsfVRL/jaqrbVKLf9TXFBgMHmjM5tGnyWZCLFVRpTfT7eB5Ad0NBoyZugHE11a3q0u/6mmKDgQPNmRzaNPlsgNrHplFT3apulh1bQZXUZNnvulVdBry4mhg46muKDQYONGdy1OEKWUGtW9W17HdITXWruk0YmyVNWaa/gmpJU5aFraDWqeo2xe/YYOBAcyZHHa6QDYW6XJb9DllBrctl2W+NmkKPrU5Vtw1+hwp4QPWqblP8jg0GDjRncmi73OijKbTfeZ5GUxsDXp2qrmTAC1VBrcsV2m/3dU2a6HdcTQwcDYblDbCNgSPP61V16Xd1rtQLMv2Oq8ldXaHfcTSFvO1GCjBwIM6EnZtLo4kLclxN9DuuJvodV1Pb/PZpKkkFvFC33UgBBg7YXyBCVVB9NFn2GwjTUPDRZN1vboBxNLXNb5+qbhP8jg0GDthfkEONTaMmDX6HqqD6aArlt09VlwGvOpdPVbcJG6A2v1NrYuAwiEGTY3a2Gs+gCqr7HlUwOyujKcaTUZOmulXdQX6nXPw0zoHFmlxVN5Wm2dn+FdSqeqQ1SfzcJDVJPndDVVDrckk9d2NoquO3O7fII1XVjQ0GDshN2H4NhRNO6P3jFQ55nn4V1NSaLPutUZPlsWnU5HgWB7yUVV3rfve77QYgU9WNDQYOhL385cOliUejpn4BL7WmYTwpm0oSPP1ukpVa0yCeujcV1DQ2jZoG8bjHNGmi36O5YoOBA+0NHE3fAJvkd+qqbtv8do9p0lSVp18FNbUmy373q6Cm1sTAYRBtXZBTVnXb6Lc2TfQ7rib6HVdTnYC3uIKaWlM/HsmmUmwwcEB2ciyuoPpwcYEYzQMc21DQoMm639o00e+4mkJugKnH5s7VpGkxj09Vd/nyaudIg4EDYSeHJBcX5ON5FldQNWiy7DewUIXVomkxz9hY70WNmjRZ3gA1VHXb5Lc0V0yUChz33nsvJicn0el08OKLL85/fdu2bbj22muxatUqrFmzBi+//HKpx7ShX/LTODm4AY7m0agp9V11pXmKDQUtmopIfVddSZ7FFVQNmprwnGPgKM8VE6UCx2c/+1n84Ac/wIUXXnjM1++66y6sX78eP/3pT3HffffhzjvvLPWYNjRlckjx1KnqNqWCSk1xeagpPI/2gKdRU7dbvaqbZcdXUKU1afM7NkoFjuuvvx7j4+PHfG3v3r144YUXcNtttwEAPvOZz2Dnzp3Yvn370Mc0oimTI6WmplRQrWiKVUGt0lSy7HdoTd1u9apuU8amUVOdq7hNGVtdrn7vNxUbtV/DsXPnTpx77rkYOxoHO50OJiYmsGPHjqGP9cP09DTGx8fn/x08eLCurFqQnBz9XpSzfLkMl+SErarJHRtKk9NTdQPs57e0pqo8EpoGXd6V0rR8efWqrtRcGqYpld/ut+FQmiQ3QAvriaughlxP3GNVeJqyntTlamzgkMSGDRuwa9eu+X8rV66M+v0HBY6qbx9rOSEP2gClfyOpUtWl3/U18TfA43nceSE00e9jEaOC6h7z4ZHWlMrvfrfdSIHageOCCy7A7t27cfjor0h5nmPHjh2YmJgY+phGDJuwVd4+1vKEdceGrKAWv09dHmlNqf3mghxHE/2Oqym033VuKmjZ70F/Eo+N2oHjrLPOwtVXX43NmzcDAB577DGMj4/j4osvHvqYRnCBKMez+CZZkpro9/E8QNgKavH71OWR1pTa71Ca6lR16Xd9TXWaSm30OzZKBY677roL4+Pj2LVrFz75yU/OB4eHH34YDz/8MFatWoU//uM/xqZNm+bPGfaYNnBBjscziIt+9+cJFfDqNJWs+x2yocAN8Hged54mTW3zOzbGRh/SCw/9cMkll+CHP/xh5ce0od8Ptc6750lNDvdqdqkJe+qp/ppCPxndYq9JU12ek07y1xR6bBo1WR6btKa33/bXlHpsLvRq0jSI5803/TV1uwvts8XjrqOpiYFDxYtGU2PQBlj17WOZ/pupKXQFtQ6XZb8HcTmeFFXdtvqdqqrbVr/dY7E1ZVn/227EBgMH9E1YBo74PO68fjzcAGV5ht0FVaqqS78XMOwuqO77xNZk2e9BXBr9jg0GDuibsMM2wFRVXcsLxDC/gTRV3Tb7rWlBtuD3sAqq+z6xNVn2e1AFVaPfscHAAX0T1h3br4IKpKnqWl4guAHG53HnLeYpPh5bE/2Oq8mq34MqqCmrugwciqBtwmbZ4AqqezyFJqsLhDu2XwW1+HhsTdb95gYYj8edV0TKqm4b/U7ZVGLgUASNE3YQj3tckyYLC0S3y4AXk6dfBTVlVde63+68IjRugJb9Tq2JgUMBBlVQAX2TI2VV1/oC0Y8nZVW3jX5r1GTF734V1NSaLPvtztOkiYFDAZo0OVJXdSV4BlVQU2riBqiDR6Mmx9PkplLT/G56VTfLBldQtfkdGwwcDQocGjVZT//aNHW7vRelld0AB1VQpTVZ9rtKVXdQBVVak2W/3eOaNFn1OzYYOLgBevNUqerSb38eoHxTiX7787jHy8BVqOl3fR73eBkMuwuqtrFp1RQTDBxHf2iLK6iAzsmhTRM3wLiaqi7I9Nufxz1elqd4XihN9LuHYXdB1TY2rZpigoEj619BBXRODm2a6i7Iiyuo0pro97HHcUGuz+MeL8tTPC+UJqt+V63q0m9/TTHBwNGwyaFNU50FudtlwPPhcY+X5elXQZXWZNXvqlVdboB+PFWruvTbX1NMMHA0bHJo01S1qtuksWnUVLWq26SxWdCUZc2poFrQxMDhrykmGDgaNjmqcMWooFat6lr2W6Mmy2PTqCnm2Mo2laz7HaOCWqWq2zS/Y4KBo2GTQ1v6r6PJqt8xKqhVuWL5XaWqK6UpRgW1Klcsv6tUdS0/52KNzT2uSRMDRwPRtMnBwDGaq9utXtWl3/W53NeqNJUkNMWooFblsrwBxqigVuWy7PcoTQwcDUSsyeF++42piRtgXE1t9zu2JvodV1OMCmpVLst+HznSC9UMHIZgecK640JWUOtosu43F+Q4muh3XE1t9btOVbdJAS8mGDiMLxDdbtgKal1NvjzDuFL6HbqCWkeTZb+L378uj7Sm0H7XqerS7/pcdaq6TfI7Jhg4jC/IocemUVOqqm5b/U5V1c2y8BXUOpqszoG2Bo5Umhg4DGLYD2L58vI/1GEVVPcnDYkJW0VTlvWO7wfJCatN05IlvdARW5OUR7E01fFbkyZpvzVq0jQvs6y3lg2roEo0lbStJ6k0ueMG3XZDqqobEwwcEdJoyktyVtP/sApqKk2W/R5WQU2laRRPiqqu5TkwiidFVde638Nuu+GO8dUUEwwcEQJHHS5NPBo1NdHvVFVdCZ5hFdRUmkbxAGmaSlIBb1AFNZWmMn5r09T0NS6G3zHBwNHiDTBVVbetfgPN3QCb6rc2TWV5hjUUUmmy7PewCmoqTQwcBiE5OTqd/g2FOlxNmrDcAMvxuGM0aaLfcTXR77iarAY893buDBwNg/Tk6Pf3trpcoXncMZo0VeEZVEFNqcmy3+4cTZoG8TS9qdQ0v1NWddvotzRXLDBwNGxycAMczaNRk4UNcNBNslJqGsST6qaC0htgv4ZCSk1Nes4xcJTnigUGjoZNDikeyaqutrFp1NTpVK/q0m9bmqryDKqgptTURL/LNJXaHPBigoGjYZNDcgMsy9W0CmrTNTWtgkpN5XnKVnWbNjaNmrrd8lXdLBtcQZXWpM3vmGDgaNjkSKGpzZcbU2iKWUEtW9W17HfMCipQrqlk2e9YmtzXy65xTRqbNFcsMHA0bHJYDxxlq7r0218TN8AeYjYU3DE+PNKaYvsds4LqjvHhkdakbU+JCQaOEZOj7NvHWp6wsTfAti8Q9NufpwoX/fbnqcLFgOfPU4Vr2G03YoOBgxO2FE+sCqo7xodHWhM3QPotoalKU4l++2uqUtVts98xwcDBBTkazygu+r3AE6OCyg1wgQcI31CoUtVtg9/aNLXV75hg4FC2AcZqKFThivVkrFLVtb5AxBhblaqudb9jVFCrarLsNxA+4FXVFNPvmE0lBg5FGPZDrfL2sVKT4/Dh3mTUtkDE2gBja2pzwNOoyfLYNGrqduNXdbMsTgW1qqaYV3FdEy2GJneM+4UuJRg4lE3YNl9uTKEpVgW1Cpdlv8tUUGNXdS37PYrLfT1mU4l+x99Tut3BAS8mGDiUTVgGDn1+x67qWva7TEOheFwMTZb9LlNBdd8vlibLfo/i0uh3TDBwKJuwZTbA2FVdywtEGb+Lx8XSRL/jarLqd9mAR79leEZVUDX6HRMMHMombJaNrqC642JqsrpAcAOk3232O0VTqc1+p6jqMnAogsYJO4rHHadJU5MXiFEVVHdcTE2W/QYGNxS4AcrzuOP7IUVVt81+p9LEwKEAoxoKQPkf6uzsaJ7Z2dE8koFDSlMZnrILRExNEn67V3Zr0pTCb8nnybAKqqvqxtYk4ZFGTe6YQQEvlaaYfsd+7rrjh3Fp2lNiotWBY1QFFdCXRlNUdaV4RjUUUmgaxZOiqmv9N8BRi582TU33e1gFNZWmUTxNbSplWc/rQX8ST6WJgUMBmnr5S5umsjyjXsCWQpNlv0c1FFJoaqrfTW0qNdVvoJlNJcfTpIAXEwwc0Dlhh0Gbpio87nhNmprot3s1/DAw4MlugKO4XHuMfvvzuOM0abLqd0wwcIATVoKnTFWXfsddkOk3/bbsd5m7oGobm1ZNsdD6wDGsggronBzaNHFBjquJfsfVRL/jairbVKLfDByNQlMnhzZNVRbkYRVUaU30u/dRoqHQZr+5AcbVVLaqS78ZOBqFpk4ObZqqbIBNG5tGTWXvqptlwyuokpos+132rroMeHE1MXAwcDQKTZ0cZbhiVlDLVnUt+x1TU9mqbhPH1mRNWda8CmqTNWVZ3ApqmapuU/2OBQaOBk6OMlwxGwpluSz7HbOCWpbLst8aNcUeW5mqbhv8jhXwgNFV3ab6HQsMHA2cHNouN1bRFNvvPI+jiQGvXFVXMuDFqqCW5YrttztOkyb63Uy/Y4GBw+gGyMDR87pMVZd++2uKvSDT74XjYmhyV1PodxxNkrfdYOBQghQTdm4ujiYuyAvHxdBEvxeOi6GJfi8cF0NT2/2u0lSSCnixbrsREwwchheIWBXUKpos+w3EaShU0WTdb26AcTS13e8qVd0m+h0LDByGF+RYY9OoKYXfsSqoVTTF8rtKVZcBz19TlapuEzdAbX7H1sTAYRBSk6NsBdV9zxiaLD8Zy3DFruq23e/YVd0si1dBraLJ6hzIsngV1CqaLPvtjh3GI1XVjQWRwPH3f//3uPrqq3HllVdi9erV+Mu//EsAwN69e3HzzTdjamoKq1evxrPPPivx7cQgNTnKNBROOKH3jxugP0+ZCmpsTZb91qjJ8tg0anI8owJezKqudb/L3HYDkKnqxsKQ4ZRDnue47bbb8PTTT+Pyyy/HzMwMPvKRj+DTn/407r//fqxduxb/8A//gK1bt+LXfu3X8Oqrr2Kpu/6aGDHTaBUuTTwaNZUJeNKaDhyQ4cmy3hWxYQu3Nr/LVFCraDrttNE8+/aN5imjx1V1TzjBn6upz7mVK2V4yuhxx554oj9XU/2OyeOOXb7cjysWRK5wdDod7N+/HwBw4MABnH766eh2u9iyZQvuvvtuAMCaNWtw3nnn4ZlnnpH4liJg4FjYALVpGsXjjtWkqQxP7Kpu2/12x2rSNIqnTAU1tibLfpepoMbWFNvvWPC+wtHpdPDtb38bn/70p3HSSSfhzTffxOOPP463334bc3NzOOecc+aPnZycxI4dO47jmJ6exvT09PznBw8e9JVVClyQex/n5oa/+E7jk9Edq0lTlQVi2EU++i3v94oVejS1wW9NmsoEvFEV1NiayvBINpViwfsKx+HDh/HVr34Vjz/+OF577TV873vfw+23347Do36NK2DDhg3YtWvX/L+Vo64BCkFycoyqoFbh4gIxmgcYHpJSaLLutzZN9FvX2FJUddvst2RVNxa8A8eLL76In/3sZ7j++usB9P50Mj4+jpdeegljY2PYs2fP/LEzMzOYmJjw/ZZiiDk5JLm4II+uoKbQZNlvYPhVmRSaRvGMjfVeK6NJk+UNMEVVt81+S3PFgHfguOCCC7B7927813/9FwBg+/bteOWVV3DJJZfg1ltvxcaNGwEAW7duxeuvv45169b5fksxNHVycANspt9Nreo6nmEvdE2laRhSVHWleEZVUFNoauJzjoFDV+Dwfg3H2WefjUceeQS//uu/jiVLluDIkSP48z//c0xMTODBBx/E7bffjqmpKSxbtgybN29W01ABmjs5pHjKVHWlK6innirD00S/U2ga9toFST2SXFo1jXppWdsDnrSmN9+U4XEvwh10RTTLRldQHZdVv2PBO3AAwOc+9zl87nOfO+7rZ599Np588kmJbxEETZ0cMTWlqKC22e8qFdQyVd0yFdQsG17Vtex3FU1lqrplKqijqrr0O8xV3EFV3aaOTZorBvhOow2cHDE1pbrcOKyqS79lxzaqqmvZ7xQVVHesD4+0plh+p6igumN9eKQ1adtTYoGBo8TkOHSIG2DsBWLYXXXpNxdk+t1Mv1NUUN2xPjzSmrQFvFhofeAY9g5twMIPatjbx1qesO6xmBXU4vetyyOtiRvgcB5pTfR7OI+0Jqt+l6nqWvbb/eLGwKEAXCDKLRCxK6juWB8eaU2xF+SYFdTi963LI63J6gZYpqpLv+U0lanq0u94YODggqxubO5YTZpi+x2roVCmqmvd75gV1DJVXet+u+M0abLu96gr+bHAwKHoklzsu6CW4Yr9ZCxT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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    " \n",
    "t = range(50)\n",
    "pid = PID(0.1, 100, -100, 0.7,0.5, 0.1)\n",
    "val = 30 #初始实际值\n",
    "z = []\n",
    "for i in t:\n",
    "    inc = pid.calculate(90, val)\n",
    "    #print(\"val:%f inc:%f\"%(val,inc))\n",
    "    #if(i%2):\n",
    "                #val=val-val*0.05;\n",
    "    z.append(val)\n",
    "    val += inc # 新的目标值累加\n",
    "plt.figure(figsize=(8,6), dpi = 80)\n",
    "plt.plot(t,z,color=\"blue\",linewidth=1.0,linestyle=\"-\")\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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cvHFF8tf/MVfyBe+8AX28Ujs3r1brrvuOrnmmmtO/R/7dnze8Y53yPbt2+Xd7363PPnkk1H697pKPghpM7fddps88sgj8tGPfjS3lNbz+c9/Xg4cOCAf+chH5AMf+EBuOa3khz/8odx1113yoQ99KLeUdcX9998vDz30kPzLv/yLbN68Wd75zndGeZ91lXxcfPHFcujQITl58qSIiBRFIfv375ctW7ZkVtZu2O7x+fjHPy533323fPnLX5bZ2VnZtGmTjI+PyxNPPHHqNfv27WObg3nnO98p//iP/yhzc3Ps42AeeOAB2bdvn2zbtk22bt0q3/72t+WWW26RO++8k307ItqOExMT8qd/+qfywAMPRBnD11Xy8cIXvlBe+cpXyt69e0VE5K677pK5uTm57LLLMitrN2z3uOzevVvuuOMOuffee+Xcc8899f833XST3H777SIi8uCDD8rjjz8u119/fSaV7eDZZ5+VX/3qV6f+fc8998imTZvYxyNw6623yqFDh2Tfvn2yb98+2blzp3z605+WW2+9lX07EsePH5dnn3321L/vuOMOecUrXhGnf3tXiwwpP/3pT4udO3cW27ZtK6655prioYceyi2pVdxyyy3Fi1/84mJsbKx44QtfWFx66aVFUbDdY3HgwIFCRIqXvOQlxVVXXVVcddVVxW/91m8VRVEUTzzxRHHjjTcWl112WfHyl7+8+PrXv55Z7fCzb9++YseOHcUVV1xRXHnllcUNN9xwqjiPfTwu1YJT9u04/OIXvyiuvvrqYvv27cUVV1xR/MEf/EHx6KOPFkWB7988Xp0QQgghSVlXyy6EEEIIyQ+TD0IIIYQkhckHIYQQQpLC5IMQQgghSWHyQQghhJCkMPkghBBCSFKYfBBCCCEkKUw+CCGEEJIUJh+EEEIIScr/B+8JGyZEhcNKAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "hx3 =[]\n",
    "#高通滤波：\n",
    "hpfFc = 0.00001\n",
    "hpfTs = 0.0000000001\n",
    "y_k = 0\n",
    "y_k1 = 0\n",
    "u_k1 = 0\n",
    "alpha =1 / (1 + 2 * 3.1415926 * hpfFc * hpfTs + 1);\n",
    "for i in z:\n",
    "    hx3.append(hpf(i))\n",
    "plt.figure(figsize=(8,6), dpi = 80)\n",
    "plt.plot(t,hx3,color=\"blue\",linewidth=1.0,linestyle=\"-\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "lx4 =[]\n",
    "yyy =0\n",
    "for i in z:\n",
    "    lx4.append(lpf(i))\n",
    "plt.figure(figsize=(8,6), dpi = 80)\n",
    "plt.plot(t,lx4,color=\"blue\",linewidth=1.0,linestyle=\"-\")\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
